home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 5 / Amiga Tools 5.iso / grafik / 3d & render tools / irit / contrib / scripts / cupspoon.irt < prev    next >
Encoding:
Text File  |  1996-07-16  |  6.0 KB  |  195 lines

  1. #
  2. #            Creating the spoon itself...
  3. #
  4.  
  5. scl_x = 1 / 4;
  6. scl_y = 1;
  7. scl_z = 1;
  8.  
  9. shift = 0.05 * scl_x;
  10.  
  11. knots = list ( 
  12.  
  13. list ( KV_FLOAT ),
  14. list ( KV_FLOAT )
  15.  
  16. #        list ( 0, 0, 0, 1, 2, 2, 2 )
  17. #        list ( 0, 0, 0, 1, 2, 3, 4, 5, 6, 6, 6 ), 
  18. );
  19.  
  20. sp_mesh = list (
  21.  
  22.             list ( ctlpt ( E3, -0.4, 0, 0.1 ),
  23.                                ctlpt ( E3, -0.4, 0, 0.1 ),
  24.                                ctlpt ( E3, -0.4, 0, 0.1 ),
  25.                                ctlpt ( E3, -0.4, 0, 0.1 ) ),
  26.  
  27.                         list ( ctlpt ( E3, -0.39, -0.1, 0.1 ),
  28.                                ctlpt ( E3, -0.39, -0.05, 0.08 ),
  29.                                ctlpt ( E3, -0.39, 0.05, 0.08 ),
  30.                                ctlpt ( E3, -0.39, 0.1, 0.1 ) ),
  31.  
  32.                         list ( ctlpt ( E3, -0.2, -0.2, 0.1 ),
  33.                                ctlpt ( E3, -0.2, -0.15, -0.04 ),
  34.                                ctlpt ( E3, -0.2, 0.15, -0.04 ),
  35.                                ctlpt ( E3, -0.2, 0.2, 0.1 ) ),
  36.  
  37.                         list ( ctlpt ( E3, 0.05, -0.25, 0.1 ),
  38.                                ctlpt ( E3, 0.05, -0.17, -0.2 ),
  39.                                ctlpt ( E3, 0.05, 0.17, -0.2 ),
  40.                                ctlpt ( E3, 0.05, 0.25, 0.1 ) ),
  41.  
  42.                         list ( ctlpt ( E3, 0.2, -0.2, 0.1 ),
  43.                                ctlpt ( E3, 0.2, -0.1, -0.02 ),
  44.                                ctlpt ( E3, 0.2, 0.1, -0.02 ),
  45.                                ctlpt ( E3, 0.2, 0.2, 0.1 ) ),
  46.  
  47.                         list ( ctlpt ( E3, 0.29, -0.1, 0.1 ),
  48.                                ctlpt ( E3, 0.29, -0.05, 0.1 ),
  49.                                ctlpt ( E3, 0.29, 0.05, 0.1 ),
  50.                                ctlpt ( E3, 0.29, 0.1, 0.1 ) ),
  51.  
  52.                         list ( ctlpt ( E3, 0.3, -0.05, 0.1 ),
  53.                                ctlpt ( E3, 0.3, -0.025, 0.1+1.5*shift ),
  54.                                ctlpt ( E3, 0.3, 0.025, 0.1+1.5*shift ),
  55.                                ctlpt ( E3, 0.3, 0.05, 0.1 ) )
  56. comment &
  57.                         list ( ctlpt ( E3, 0.3, -0.05, 0.1 ),
  58.                                ctlpt ( E3, 0.3, -0.005, 0.1 ),
  59.                                ctlpt ( E3, 0.3, 0.005, 0.1 ),
  60.                                ctlpt ( E3, 0.3, 0.05, 0.1 ) )
  61. &
  62. );
  63.  
  64. # sp_srf = sbspline ( 3, 3, sp_mesh, knots );
  65. sp_srf = sbezier ( sp_mesh );
  66.  
  67. bk_mesh = list ( 
  68. comment &
  69.                         list ( ctlpt ( E3, 0.3, -0.05, 0.1 ),
  70.                                ctlpt ( E3, 0.3, -0.005, 0.1 ),
  71.                                ctlpt ( E3, 0.3, 0.005, 0.1 ),
  72.                                ctlpt ( E3, 0.3, 0.05, 0.1 ) ),
  73. &
  74.                         list ( ctlpt ( E3, 0.3, -0.05, 0.1 ),
  75.                                ctlpt ( E3, 0.3, -0.005, 0.1-shift ),
  76.                                ctlpt ( E3, 0.3, 0.005, 0.1-shift ),
  77.                                ctlpt ( E3, 0.3, 0.05, 0.1 ) ),
  78.  
  79.                         list ( ctlpt ( E3, 0.29, -0.101, 0.1 ),
  80.                                ctlpt ( E3, 0.29, -0.051, 0.05 ),
  81.                                ctlpt ( E3, 0.29, 0.051, 0.05 ),
  82.                                ctlpt ( E3, 0.29, 0.101, 0.1 ) ),
  83.  
  84.                         list ( ctlpt ( E3, 0.2, -0.201, 0.1 ),
  85.                                ctlpt ( E3, 0.2, -0.101, -0.1 ),
  86.                                ctlpt ( E3, 0.2, 0.101, -0.1 ),
  87.                                ctlpt ( E3, 0.2, 0.201, 0.1 ) ),
  88.  
  89.                         list ( ctlpt ( E3, 0.05, -0.251, 0.1 ),
  90.                                ctlpt ( E3, 0.05, -0.171, -0.23 ),
  91.                                ctlpt ( E3, 0.05, 0.171, -0.23 ),
  92.                                ctlpt ( E3, 0.05, 0.251, 0.1 ) ),
  93.  
  94.                         list ( ctlpt ( E3, -0.2, -0.201, 0.1 ),
  95.                                ctlpt ( E3, -0.2, -0.151, -0.08 ),
  96.                                ctlpt ( E3, -0.2, 0.151, -0.08 ),
  97.                                ctlpt ( E3, -0.2, 0.201, 0.1 ) ),
  98.  
  99.                         list ( ctlpt ( E3, -0.39, -0.101, 0.1 ),
  100.                                ctlpt ( E3, -0.39, -0.051, 0.05 ),
  101.                                ctlpt ( E3, -0.39, 0.051, 0.05 ),
  102.                                ctlpt ( E3, -0.39, 0.101, 0.1 ) ),
  103.  
  104.             list ( ctlpt ( E3, -0.4, 0.001, 0.1 ),
  105.                                ctlpt ( E3, -0.4, 0.001, 0.1 ),
  106.                                ctlpt ( E3, -0.4, 0.001, 0.1 ),
  107.                                ctlpt ( E3, -0.4, 0.001, 0.1 ) )
  108.  
  109. );
  110.  
  111.  
  112. # bk_srf = sbspline ( 3, 3, bk_mesh, knots);
  113. bk_srf = sbezier ( bk_mesh );
  114.  
  115. #
  116. #            Creating spoon handle...
  117. #
  118.  
  119. #
  120. #    Creating sections...
  121. #
  122.  
  123. center1 = Vector ( 0.3, 0, 0.1 );
  124. center2 = Vector ( 0.6, 0, 0.25 );
  125. center3 = Vector ( 1.6, 0, 0.17 );
  126. center4 = Vector ( 1.795, 0, 0.13 );
  127. center5 = Vector ( 1.8, 0, 0.13 );
  128.  
  129. rad1 = 0.05;
  130. rad2 = 0.05;
  131. rad3 = 0.1;
  132. rad4 = 0.1;
  133. rad5 = 0;
  134.  
  135. axesO = Vector ( 0, 0, 0 );
  136.  
  137. sect1 = circle ( axesO, rad1 );
  138. sect2 = circle ( axesO, rad2 );
  139. sect3 = circle ( axesO, rad3 );
  140. sect4 = circle ( axesO, rad4 );
  141. sect5 = circle ( axesO, rad5 );
  142.  
  143. #    Scale circles...
  144.  
  145. scl = Vector ( scl_x, scl_y, scl_z );
  146.  
  147. sect1 = sect1 * Scale ( scl );
  148. sect2 = sect2 * Scale ( scl );
  149. sect3 = sect3 * Scale ( scl );
  150. sect4 = sect4 * Scale ( scl );
  151. sect5 = sect5 * Scale ( scl );
  152.  
  153.  
  154. #    Rotate circles...
  155. sect1 = sect1 * RotY ( 90 );
  156. sect2 = sect2 * RotY ( 90 );
  157. sect3 = sect3 * RotY ( 90 );
  158. sect4 = sect4 * RotY ( 90 );
  159. sect5 = sect5 * RotY ( 90 );
  160.  
  161.  
  162. #    Move circles to theirs position...
  163. sect1 = sect1 * Trans ( center1 );
  164. sect2 = sect2 * Trans ( center2 );
  165. sect3 = sect3 * Trans ( center3 );
  166. sect4 = sect4 * Trans ( center4 );
  167. sect5 = sect5 * Trans ( center5 );
  168.  
  169.  
  170. hspoon = sfromcrvs ( list ( sect1, sect2, sect3, sect4, sect5 ), 5 );
  171.  
  172. # hspoon = hspoon * Trans ( Vector 
  173.  
  174. #
  175. #            Whole the object...
  176.  
  177. sp_color = cyan;
  178.  
  179. color ( sp_srf, sp_color );
  180. color ( bk_srf, sp_color );
  181. color ( hspoon, sp_color );
  182.  
  183. spoon = list ( bk_srf, sp_srf, hspoon );
  184.  
  185. scl_factor = 1/2;
  186. short_it =  Scale ( Vector ( scl_factor, scl_factor, scl_factor ) );
  187. spoon = spoon * short_it;
  188.  
  189. # interact ( spoon );
  190. # view ( spoon, true );
  191. # view ( axes, false );
  192. # save ( "spoon", spoon );
  193. # exit();
  194. # free ( spoon );
  195.